import Vue from 'vue'
import iView from 'iview';
import Router from 'vue-router'
import {routers} from './router.js'
import Util from '../libs/util';
import Cookies from 'js-cookie';

Vue.use(Router)

const RouterConfig = {
    mode: 'hash',
    routes: routers
};

const router = new Router(RouterConfig);

router.beforeEach((to, from, next) => {
    let saToken = window.$localStorage.getItem("saToken");
    console.log(to.name)
    iView.LoadingBar.start();
    Util.title(to.title);
    if (Cookies.get('locking') === '1' && to.name !== 'locking') { // 判断当前是否是锁定状态
        next({
            replace: true,
            name: 'locking'
        });
    } else if (Cookies.get('locking') === '0' && to.name === 'locking') {
        next(false);
    } else {
        // 判断是否已经登录且前往的页面不是登录页
        if (!saToken && to.name !== 'login') {
            // 判断是否已经登录且前往的页面不是登录页
            next({
                name: 'login'
            });
        } else if (saToken && to.name === 'login') {
            // 判断是否已经登录且前往的是登录页
            next({
                name: '/'
            });
        } else {
            const curRouterObj = Util.getRouterObjByName([...routers], to.name);
            // 需要判断权限的路由
            if (curRouterObj) {
                // 如果在地址栏输入的是一级菜单则默认打开其第一个二级菜单的页面
                Util.toDefaultPage([...routers], to.name, router, next);
            } else {
                // 没有配置权限的路由, 直接通过
                next({
                    replace: true,
                    name: 'error-403'
                });
            }
        }
    }
});

router.afterEach((to) => {
    // Util.openNewPage(router.app, to.name, to.params, to.query);
    iView.LoadingBar.finish();
    window.scrollTo(0, 0);
});

export default router;

